/Users/thachakritkomolkhetruck/Desktop/IA_NetBeans_Project copy/src/Prototype/Calculator.java |
1
2
3
4
5
6 package Prototype;
7
8 import java.util.ArrayList;
9
10
11
12 @author
13
14 public class Calculator {
15 public static ArrayList<String> typeCalc1(String first, String second){
16 ArrayList<String> multiplier4 = new ArrayList<String>();
17 Type[]types = new Type[18];
18 double[]normalMultiplier = {1,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,1};
19 types[0] = new Type("Normal",normalMultiplier);
20 double[]fireMultiplier = {1,0.5,2,0.5,1,0.5,1,1,2,1,1,0.5,2,1,1,1,0.5,0.5};
21 types[1] = new Type("Fire",fireMultiplier);
22 double[]waterMultiplier = {1,0.5,0.5,2,2,0.5,1,1,1,1,1,1,1,1,1,1,0.5,1};
23 types[2] = new Type("Water",waterMultiplier);
24 double[]grassMultiplier = {1,2,0.5,0.5,0.5,2,1,2,0.5,2,1,2,1,1,1,1,1,1};
25 types[3] = new Type("grass",grassMultiplier);
26 double[]electricMultiplier = {1,1,1,1,0.5,1,1,1,2,0.5,1,1,1,1,1,1,0.5,1};
27 types[4] = new Type("Electric",electricMultiplier);
28 double[]iceMultiplier = {1,2,1,1,1,0.5,2,1,1,1,1,1,2,1,1,1,2,1};
29 types[5] = new Type("Ice",iceMultiplier);
30 double[]fightingMultiplier = {1,1,1,1,1,1,1,1,1,2,2,0.5,0.5,1,1,0.5,1,2};
31 types[6] = new Type("Fighting",fightingMultiplier);
32 double[]poisonMultiplier = {1,1,1,0.5,1,1,0.5,0.5,2,1,2,0.5,1,1,1,1,1,0.5};
33 types[7] = new Type("Poison",poisonMultiplier);
34 double[]groundMultiplier = {1,1,2,2,0,2,1,0.5,1,1,1,1,0.5,1,1,1,1,1};
35 types[8] = new Type("Ground",groundMultiplier);
36 double[]flyingMultiplier = {1,1,1,0.5,2,2,0.5,1,0,1,1,0.5,2,1,1,1,1,1};
37 types[9] = new Type("Flying",flyingMultiplier);
38 double[]psychicMultiplier = {1,1,1,1,1,1,0.5,1,1,1,0.5,2,1,2,1,2,1,1};
39 types[10] = new Type("Psychic",psychicMultiplier);
40 double[]bugMultiplier = {1,2,1,0.5,1,1,0.5,1,0.5,2,1,1,2,1,1,1,1,1};
41 types[11] = new Type("Bug",bugMultiplier);
42 double[]rockMultiplier = {0.5,0.5,2,2,1,1,2,0.5,2,0.5,1,1,1,1,1,1,2,1};
43 types[12] = new Type("Rock",rockMultiplier);
44 double[]ghostMultiplier = {0,1,1,1,1,1,0,0.5,1,1,1,0.5,1,2,1,2,1,1};
45 types[13] = new Type("Ghost",ghostMultiplier);
46 double[]dragonMultiplier = {1,0.5,0.5,0.5,0.5,2,1,1,1,1,1,1,1,1,2,1,1,2};
47 types[14] = new Type("Dragon",dragonMultiplier);
48 double[]darkMultiplier = {1,1,1,1,1,1,2,1,1,1,0,2,1,0.5,1,0.5,1,2};
49 types[15] = new Type("Dark",darkMultiplier);
50 double[]steelMultiplier = {0.5,2,1,0.5,1,0.5,2,0,2,0.5,0.5,0.5,0.5,1,0.5,1,0.5,0.5};
51 types[16] = new Type("Steel",steelMultiplier);
52 double[]fairyMultiplier = {1,1,1,1,1,1,0.5,2,1,1,1,0.5,1,1,0,0.5,2,1};
53 types[17] = new Type("fairy",fairyMultiplier);
54 if(!(second==(null))){
55 boolean type1Found = true;
56 int type1Index = 0;
57 int i = 0;
58 while(type1Found){
59 if(first.equalsIgnoreCase(types[i].getTypeName())){
60 type1Index = i;
61 type1Found = false;
62 }
63 i++;
64 }
65 boolean type2Found = true;
66 int type2Index = 0;
67 i = 0;
68 while(type2Found){
69 if(second.equalsIgnoreCase(types[i].getTypeName())){
70 type2Index = i;
71 type2Found = false;
72 }
73 i++;
74 }
75 double[] type1 = types[type1Index].getTypeMultiplier();
76 double[] type2 = types[type2Index].getTypeMultiplier();
77 for(int o=0;o<types.length;o++){
78
79
80 if(type1[o]*type2[o]==1){
81
82 multiplier4.add(types[o].getTypeName());
83 }
84 }
85 return multiplier4;
86 }else{
87 boolean type1Found = true;
88 int type1Index = 0;
89 int i = 0;
90 while(type1Found){
91 if(first.equalsIgnoreCase(types[i].getTypeName())){
92 type1Index = i;
93 type1Found = false;
94 }
95 i++;
96 }
97 double[] type1 = types[type1Index].getTypeMultiplier();
98 for(int o=0;o<types.length;o++){
99 if(type1[o]==1){
100 multiplier4.add(types[o].getTypeName());
101 }
102 }
103 return multiplier4;
104 }
105
106 }
107 public static ArrayList<String> typeCalc4(String first, String second){
108 ArrayList<String> multiplier4 = new ArrayList<String>();
109 Type[]types = new Type[18];
110 double[]normalMultiplier = {1,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,1};
111 types[0] = new Type("Normal",normalMultiplier);
112 double[]fireMultiplier = {1,0.5,2,0.5,1,0.5,1,1,2,1,1,0.5,2,1,1,1,0.5,0.5};
113 types[1] = new Type("Fire",fireMultiplier);
114 double[]waterMultiplier = {1,0.5,0.5,2,2,0.5,1,1,1,1,1,1,1,1,1,1,0.5,1};
115 types[2] = new Type("Water",waterMultiplier);
116 double[]grassMultiplier = {1,2,0.5,0.5,0.5,2,1,2,0.5,2,1,2,1,1,1,1,1,1};
117 types[3] = new Type("grass",grassMultiplier);
118 double[]electricMultiplier = {1,1,1,1,0.5,1,1,1,2,0.5,1,1,1,1,1,1,0.5,1};
119 types[4] = new Type("Electric",electricMultiplier);
120 double[]iceMultiplier = {1,2,1,1,1,0.5,2,1,1,1,1,1,2,1,1,1,2,1};
121 types[5] = new Type("Ice",iceMultiplier);
122 double[]fightingMultiplier = {1,1,1,1,1,1,1,1,1,2,2,0.5,0.5,1,1,0.5,1,2};
123 types[6] = new Type("Fighting",fightingMultiplier);
124 double[]poisonMultiplier = {1,1,1,0.5,1,1,0.5,0.5,2,1,2,0.5,1,1,1,1,1,0.5};
125 types[7] = new Type("Poison",poisonMultiplier);
126 double[]groundMultiplier = {1,1,2,2,0,2,1,0.5,1,1,1,1,0.5,1,1,1,1,1};
127 types[8] = new Type("Ground",groundMultiplier);
128 double[]flyingMultiplier = {1,1,1,0.5,2,2,0.5,1,0,1,1,0.5,2,1,1,1,1,1};
129 types[9] = new Type("Flying",flyingMultiplier);
130 double[]psychicMultiplier = {1,1,1,1,1,1,0.5,1,1,1,0.5,2,1,2,1,2,1,1};
131 types[10] = new Type("Psychic",psychicMultiplier);
132 double[]bugMultiplier = {1,2,1,0.5,1,1,0.5,1,0.5,2,1,1,2,1,1,1,1,1};
133 types[11] = new Type("Bug",bugMultiplier);
134 double[]rockMultiplier = {0.5,0.5,2,2,1,1,2,0.5,2,0.5,1,1,1,1,1,1,2,1};
135 types[12] = new Type("Rock",rockMultiplier);
136 double[]ghostMultiplier = {0,1,1,1,1,1,0,0.5,1,1,1,0.5,1,2,1,2,1,1};
137 types[13] = new Type("Ghost",ghostMultiplier);
138 double[]dragonMultiplier = {1,0.5,0.5,0.5,0.5,2,1,1,1,1,1,1,1,1,2,1,1,2};
139 types[14] = new Type("Dragon",dragonMultiplier);
140 double[]darkMultiplier = {1,1,1,1,1,1,2,1,1,1,0,2,1,0.5,1,0.5,1,2};
141 types[15] = new Type("Dark",darkMultiplier);
142 double[]steelMultiplier = {0.5,2,1,0.5,1,0.5,2,0,2,0.5,0.5,0.5,0.5,1,0.5,1,0.5,0.5};
143 types[16] = new Type("Steel",steelMultiplier);
144 double[]fairyMultiplier = {1,1,1,1,1,1,0.5,2,1,1,1,0.5,1,1,0,0.5,2,1};
145 types[17] = new Type("fairy",fairyMultiplier);
146 if(!(second==(null))){
147 boolean type1Found = true;
148 int type1Index = 0;
149 int i = 0;
150 while(type1Found){
151 if(first.equalsIgnoreCase(types[i].getTypeName())){
152 type1Index = i;
153 type1Found = false;
154 }
155 i++;
156 }
157 boolean type2Found = true;
158 int type2Index = 0;
159 i = 0;
160 while(type2Found){
161 if(second.equalsIgnoreCase(types[i].getTypeName())){
162 type2Index = i;
163 type2Found = false;
164 }
165 i++;
166 }
167 double[] type1 = types[type1Index].getTypeMultiplier();
168 double[] type2 = types[type2Index].getTypeMultiplier();
169 for(int o=0;o<types.length;o++){
170
171
172 if(type1[o]*type2[o]==4){
173
174 multiplier4.add(types[o].getTypeName());
175 }
176 }
177 return multiplier4;
178 }else{
179 boolean type1Found = true;
180 int type1Index = 0;
181 int i = 0;
182 while(type1Found){
183 if(first.equalsIgnoreCase(types[i].getTypeName())){
184 type1Index = i;
185 type1Found = false;
186 }
187 i++;
188 }
189 double[] type1 = types[type1Index].getTypeMultiplier();
190 for(int o=0;o<types.length;o++){
191 if(type1[o]==4){
192 multiplier4.add(types[o].getTypeName());
193 }
194 }
195 return multiplier4;
196 }
197
198 }
199 public static ArrayList<String> typeCalc2(String first, String second){
200 ArrayList<String> multiplier4 = new ArrayList<String>();
201 Type[]types = new Type[18];
202 double[]normalMultiplier = {1,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,1};
203 types[0] = new Type("Normal",normalMultiplier);
204 double[]fireMultiplier = {1,0.5,2,0.5,1,0.5,1,1,2,1,1,0.5,2,1,1,1,0.5,0.5};
205 types[1] = new Type("Fire",fireMultiplier);
206 double[]waterMultiplier = {1,0.5,0.5,2,2,0.5,1,1,1,1,1,1,1,1,1,1,0.5,1};
207 types[2] = new Type("Water",waterMultiplier);
208 double[]grassMultiplier = {1,2,0.5,0.5,0.5,2,1,2,0.5,2,1,2,1,1,1,1,1,1};
209 types[3] = new Type("grass",grassMultiplier);
210 double[]electricMultiplier = {1,1,1,1,0.5,1,1,1,2,0.5,1,1,1,1,1,1,0.5,1};
211 types[4] = new Type("Electric",electricMultiplier);
212 double[]iceMultiplier = {1,2,1,1,1,0.5,2,1,1,1,1,1,2,1,1,1,2,1};
213 types[5] = new Type("Ice",iceMultiplier);
214 double[]fightingMultiplier = {1,1,1,1,1,1,1,1,1,2,2,0.5,0.5,1,1,0.5,1,2};
215 types[6] = new Type("Fighting",fightingMultiplier);
216 double[]poisonMultiplier = {1,1,1,0.5,1,1,0.5,0.5,2,1,2,0.5,1,1,1,1,1,0.5};
217 types[7] = new Type("Poison",poisonMultiplier);
218 double[]groundMultiplier = {1,1,2,2,0,2,1,0.5,1,1,1,1,0.5,1,1,1,1,1};
219 types[8] = new Type("Ground",groundMultiplier);
220 double[]flyingMultiplier = {1,1,1,0.5,2,2,0.5,1,0,1,1,0.5,2,1,1,1,1,1};
221 types[9] = new Type("Flying",flyingMultiplier);
222 double[]psychicMultiplier = {1,1,1,1,1,1,0.5,1,1,1,0.5,2,1,2,1,2,1,1};
223 types[10] = new Type("Psychic",psychicMultiplier);
224 double[]bugMultiplier = {1,2,1,0.5,1,1,0.5,1,0.5,2,1,1,2,1,1,1,1,1};
225 types[11] = new Type("Bug",bugMultiplier);
226 double[]rockMultiplier = {0.5,0.5,2,2,1,1,2,0.5,2,0.5,1,1,1,1,1,1,2,1};
227 types[12] = new Type("Rock",rockMultiplier);
228 double[]ghostMultiplier = {0,1,1,1,1,1,0,0.5,1,1,1,0.5,1,2,1,2,1,1};
229 types[13] = new Type("Ghost",ghostMultiplier);
230 double[]dragonMultiplier = {1,0.5,0.5,0.5,0.5,2,1,1,1,1,1,1,1,1,2,1,1,2};
231 types[14] = new Type("Dragon",dragonMultiplier);
232 double[]darkMultiplier = {1,1,1,1,1,1,2,1,1,1,0,2,1,0.5,1,0.5,1,2};
233 types[15] = new Type("Dark",darkMultiplier);
234 double[]steelMultiplier = {0.5,2,1,0.5,1,0.5,2,0,2,0.5,0.5,0.5,0.5,1,0.5,1,0.5,0.5};
235 types[16] = new Type("Steel",steelMultiplier);
236 double[]fairyMultiplier = {1,1,1,1,1,1,0.5,2,1,1,1,0.5,1,1,0,0.5,2,1};
237 types[17] = new Type("fairy",fairyMultiplier);
238 if(!(second==(null))){
239 boolean type1Found = true;
240 int type1Index = 0;
241 int i = 0;
242 while(type1Found){
243 if(first.equalsIgnoreCase(types[i].getTypeName())){
244 type1Index = i;
245 type1Found = false;
246 }
247 i++;
248 }
249 boolean type2Found = true;
250 int type2Index = 0;
251 i = 0;
252 while(type2Found){
253 if(second.equalsIgnoreCase(types[i].getTypeName())){
254 type2Index = i;
255 type2Found = false;
256 }
257 i++;
258 }
259 double[] type1 = types[type1Index].getTypeMultiplier();
260 double[] type2 = types[type2Index].getTypeMultiplier();
261 for(int o=0;o<types.length;o++){
262
263
264 if(type1[o]*type2[o]==2){
265
266 multiplier4.add(types[o].getTypeName());
267 }
268 }
269 return multiplier4;
270 }else{
271 boolean type1Found = true;
272 int type1Index = 0;
273 int i = 0;
274 while(type1Found){
275 if(first.equalsIgnoreCase(types[i].getTypeName())){
276 type1Index = i;
277 type1Found = false;
278 }
279 i++;
280 }
281 double[] type1 = types[type1Index].getTypeMultiplier();
282 for(int o=0;o<types.length;o++){
283 if(type1[o]==2){
284 multiplier4.add(types[o].getTypeName());
285 }
286 }
287 return multiplier4;
288 }
289
290 }
291 public static ArrayList<String> typeCalc0(String first, String second){
292 ArrayList<String> multiplier4 = new ArrayList<String>();
293 Type[]types = new Type[18];
294 double[]normalMultiplier = {1,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,1};
295 types[0] = new Type("Normal",normalMultiplier);
296 double[]fireMultiplier = {1,0.5,2,0.5,1,0.5,1,1,2,1,1,0.5,2,1,1,1,0.5,0.5};
297 types[1] = new Type("Fire",fireMultiplier);
298 double[]waterMultiplier = {1,0.5,0.5,2,2,0.5,1,1,1,1,1,1,1,1,1,1,0.5,1};
299 types[2] = new Type("Water",waterMultiplier);
300 double[]grassMultiplier = {1,2,0.5,0.5,0.5,2,1,2,0.5,2,1,2,1,1,1,1,1,1};
301 types[3] = new Type("grass",grassMultiplier);
302 double[]electricMultiplier = {1,1,1,1,0.5,1,1,1,2,0.5,1,1,1,1,1,1,0.5,1};
303 types[4] = new Type("Electric",electricMultiplier);
304 double[]iceMultiplier = {1,2,1,1,1,0.5,2,1,1,1,1,1,2,1,1,1,2,1};
305 types[5] = new Type("Ice",iceMultiplier);
306 double[]fightingMultiplier = {1,1,1,1,1,1,1,1,1,2,2,0.5,0.5,1,1,0.5,1,2};
307 types[6] = new Type("Fighting",fightingMultiplier);
308 double[]poisonMultiplier = {1,1,1,0.5,1,1,0.5,0.5,2,1,2,0.5,1,1,1,1,1,0.5};
309 types[7] = new Type("Poison",poisonMultiplier);
310 double[]groundMultiplier = {1,1,2,2,0,2,1,0.5,1,1,1,1,0.5,1,1,1,1,1};
311 types[8] = new Type("Ground",groundMultiplier);
312 double[]flyingMultiplier = {1,1,1,0.5,2,2,0.5,1,0,1,1,0.5,2,1,1,1,1,1};
313 types[9] = new Type("Flying",flyingMultiplier);
314 double[]psychicMultiplier = {1,1,1,1,1,1,0.5,1,1,1,0.5,2,1,2,1,2,1,1};
315 types[10] = new Type("Psychic",psychicMultiplier);
316 double[]bugMultiplier = {1,2,1,0.5,1,1,0.5,1,0.5,2,1,1,2,1,1,1,1,1};
317 types[11] = new Type("Bug",bugMultiplier);
318 double[]rockMultiplier = {0.5,0.5,2,2,1,1,2,0.5,2,0.5,1,1,1,1,1,1,2,1};
319 types[12] = new Type("Rock",rockMultiplier);
320 double[]ghostMultiplier = {0,1,1,1,1,1,0,0.5,1,1,1,0.5,1,2,1,2,1,1};
321 types[13] = new Type("Ghost",ghostMultiplier);
322 double[]dragonMultiplier = {1,0.5,0.5,0.5,0.5,2,1,1,1,1,1,1,1,1,2,1,1,2};
323 types[14] = new Type("Dragon",dragonMultiplier);
324 double[]darkMultiplier = {1,1,1,1,1,1,2,1,1,1,0,2,1,0.5,1,0.5,1,2};
325 types[15] = new Type("Dark",darkMultiplier);
326 double[]steelMultiplier = {0.5,2,1,0.5,1,0.5,2,0,2,0.5,0.5,0.5,0.5,1,0.5,1,0.5,0.5};
327 types[16] = new Type("Steel",steelMultiplier);
328 double[]fairyMultiplier = {1,1,1,1,1,1,0.5,2,1,1,1,0.5,1,1,0,0.5,2,1};
329 types[17] = new Type("fairy",fairyMultiplier);
330 if(!(second==(null))){
331 boolean type1Found = true;
332 int type1Index = 0;
333 int i = 0;
334 while(type1Found){
335 if(first.equalsIgnoreCase(types[i].getTypeName())){
336 type1Index = i;
337 type1Found = false;
338 }
339 i++;
340 }
341 boolean type2Found = true;
342 int type2Index = 0;
343 i = 0;
344 while(type2Found){
345 if(second.equalsIgnoreCase(types[i].getTypeName())){
346 type2Index = i;
347 type2Found = false;
348 }
349 i++;
350 }
351 double[] type1 = types[type1Index].getTypeMultiplier();
352 double[] type2 = types[type2Index].getTypeMultiplier();
353 for(int o=0;o<types.length;o++){
354
355
356 if(type1[o]*type2[o]==0){
357
358 multiplier4.add(types[o].getTypeName());
359 }
360 }
361 return multiplier4;
362 }else{
363 boolean type1Found = true;
364 int type1Index = 0;
365 int i = 0;
366 while(type1Found){
367 if(first.equalsIgnoreCase(types[i].getTypeName())){
368 type1Index = i;
369 type1Found = false;
370 }
371 i++;
372 }
373 double[] type1 = types[type1Index].getTypeMultiplier();
374 for(int o=0;o<types.length;o++){
375 if(type1[o]==0){
376 multiplier4.add(types[o].getTypeName());
377 }
378 }
379 return multiplier4;
380 }
381
382 }
383 public static ArrayList<String> typeCalcHalf(String first, String second){
384 ArrayList<String> multiplier4 = new ArrayList<String>();
385 Type[]types = new Type[18];
386 double[]normalMultiplier = {1,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,1};
387 types[0] = new Type("Normal",normalMultiplier);
388 double[]fireMultiplier = {1,0.5,2,0.5,1,0.5,1,1,2,1,1,0.5,2,1,1,1,0.5,0.5};
389 types[1] = new Type("Fire",fireMultiplier);
390 double[]waterMultiplier = {1,0.5,0.5,2,2,0.5,1,1,1,1,1,1,1,1,1,1,0.5,1};
391 types[2] = new Type("Water",waterMultiplier);
392 double[]grassMultiplier = {1,2,0.5,0.5,0.5,2,1,2,0.5,2,1,2,1,1,1,1,1,1};
393 types[3] = new Type("grass",grassMultiplier);
394 double[]electricMultiplier = {1,1,1,1,0.5,1,1,1,2,0.5,1,1,1,1,1,1,0.5,1};
395 types[4] = new Type("Electric",electricMultiplier);
396 double[]iceMultiplier = {1,2,1,1,1,0.5,2,1,1,1,1,1,2,1,1,1,2,1};
397 types[5] = new Type("Ice",iceMultiplier);
398 double[]fightingMultiplier = {1,1,1,1,1,1,1,1,1,2,2,0.5,0.5,1,1,0.5,1,2};
399 types[6] = new Type("Fighting",fightingMultiplier);
400 double[]poisonMultiplier = {1,1,1,0.5,1,1,0.5,0.5,2,1,2,0.5,1,1,1,1,1,0.5};
401 types[7] = new Type("Poison",poisonMultiplier);
402 double[]groundMultiplier = {1,1,2,2,0,2,1,0.5,1,1,1,1,0.5,1,1,1,1,1};
403 types[8] = new Type("Ground",groundMultiplier);
404 double[]flyingMultiplier = {1,1,1,0.5,2,2,0.5,1,0,1,1,0.5,2,1,1,1,1,1};
405 types[9] = new Type("Flying",flyingMultiplier);
406 double[]psychicMultiplier = {1,1,1,1,1,1,0.5,1,1,1,0.5,2,1,2,1,2,1,1};
407 types[10] = new Type("Psychic",psychicMultiplier);
408 double[]bugMultiplier = {1,2,1,0.5,1,1,0.5,1,0.5,2,1,1,2,1,1,1,1,1};
409 types[11] = new Type("Bug",bugMultiplier);
410 double[]rockMultiplier = {0.5,0.5,2,2,1,1,2,0.5,2,0.5,1,1,1,1,1,1,2,1};
411 types[12] = new Type("Rock",rockMultiplier);
412 double[]ghostMultiplier = {0,1,1,1,1,1,0,0.5,1,1,1,0.5,1,2,1,2,1,1};
413 types[13] = new Type("Ghost",ghostMultiplier);
414 double[]dragonMultiplier = {1,0.5,0.5,0.5,0.5,2,1,1,1,1,1,1,1,1,2,1,1,2};
415 types[14] = new Type("Dragon",dragonMultiplier);
416 double[]darkMultiplier = {1,1,1,1,1,1,2,1,1,1,0,2,1,0.5,1,0.5,1,2};
417 types[15] = new Type("Dark",darkMultiplier);
418 double[]steelMultiplier = {0.5,2,1,0.5,1,0.5,2,0,2,0.5,0.5,0.5,0.5,1,0.5,1,0.5,0.5};
419 types[16] = new Type("Steel",steelMultiplier);
420 double[]fairyMultiplier = {1,1,1,1,1,1,0.5,2,1,1,1,0.5,1,1,0,0.5,2,1};
421 types[17] = new Type("fairy",fairyMultiplier);
422 if(!(second==(null))){
423 boolean type1Found = true;
424 int type1Index = 0;
425 int i = 0;
426 while(type1Found){
427 if(first.equalsIgnoreCase(types[i].getTypeName())){
428 type1Index = i;
429 type1Found = false;
430 }
431 i++;
432 }
433 boolean type2Found = true;
434 int type2Index = 0;
435 i = 0;
436 while(type2Found){
437 if(second.equalsIgnoreCase(types[i].getTypeName())){
438 type2Index = i;
439 type2Found = false;
440 }
441 i++;
442 }
443 double[] type1 = types[type1Index].getTypeMultiplier();
444 double[] type2 = types[type2Index].getTypeMultiplier();
445 for(int o=0;o<types.length;o++){
446
447
448 if(type1[o]*type2[o]==0.5){
449
450 multiplier4.add(types[o].getTypeName());
451 }
452 }
453 return multiplier4;
454 }else{
455 boolean type1Found = true;
456 int type1Index = 0;
457 int i = 0;
458 while(type1Found){
459 if(first.equalsIgnoreCase(types[i].getTypeName())){
460 type1Index = i;
461 type1Found = false;
462 }
463 i++;
464 }
465 double[] type1 = types[type1Index].getTypeMultiplier();
466 for(int o=0;o<types.length;o++){
467 if(type1[o]==0.5){
468 multiplier4.add(types[o].getTypeName());
469 }
470 }
471 return multiplier4;
472 }
473
474 }
475 public static ArrayList<String> typeCalcFourth(String first, String second){
476 ArrayList<String> multiplier4 = new ArrayList<String>();
477 Type[]types = new Type[18];
478 double[]normalMultiplier = {1,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,1};
479 types[0] = new Type("Normal",normalMultiplier);
480 double[]fireMultiplier = {1,0.5,2,0.5,1,0.5,1,1,2,1,1,0.5,2,1,1,1,0.5,0.5};
481 types[1] = new Type("Fire",fireMultiplier);
482 double[]waterMultiplier = {1,0.5,0.5,2,2,0.5,1,1,1,1,1,1,1,1,1,1,0.5,1};
483 types[2] = new Type("Water",waterMultiplier);
484 double[]grassMultiplier = {1,2,0.5,0.5,0.5,2,1,2,0.5,2,1,2,1,1,1,1,1,1};
485 types[3] = new Type("grass",grassMultiplier);
486 double[]electricMultiplier = {1,1,1,1,0.5,1,1,1,2,0.5,1,1,1,1,1,1,0.5,1};
487 types[4] = new Type("Electric",electricMultiplier);
488 double[]iceMultiplier = {1,2,1,1,1,0.5,2,1,1,1,1,1,2,1,1,1,2,1};
489 types[5] = new Type("Ice",iceMultiplier);
490 double[]fightingMultiplier = {1,1,1,1,1,1,1,1,1,2,2,0.5,0.5,1,1,0.5,1,2};
491 types[6] = new Type("Fighting",fightingMultiplier);
492 double[]poisonMultiplier = {1,1,1,0.5,1,1,0.5,0.5,2,1,2,0.5,1,1,1,1,1,0.5};
493 types[7] = new Type("Poison",poisonMultiplier);
494 double[]groundMultiplier = {1,1,2,2,0,2,1,0.5,1,1,1,1,0.5,1,1,1,1,1};
495 types[8] = new Type("Ground",groundMultiplier);
496 double[]flyingMultiplier = {1,1,1,0.5,2,2,0.5,1,0,1,1,0.5,2,1,1,1,1,1};
497 types[9] = new Type("Flying",flyingMultiplier);
498 double[]psychicMultiplier = {1,1,1,1,1,1,0.5,1,1,1,0.5,2,1,2,1,2,1,1};
499 types[10] = new Type("Psychic",psychicMultiplier);
500 double[]bugMultiplier = {1,2,1,0.5,1,1,0.5,1,0.5,2,1,1,2,1,1,1,1,1};
501 types[11] = new Type("Bug",bugMultiplier);
502 double[]rockMultiplier = {0.5,0.5,2,2,1,1,2,0.5,2,0.5,1,1,1,1,1,1,2,1};
503 types[12] = new Type("Rock",rockMultiplier);
504 double[]ghostMultiplier = {0,1,1,1,1,1,0,0.5,1,1,1,0.5,1,2,1,2,1,1};
505 types[13] = new Type("Ghost",ghostMultiplier);
506 double[]dragonMultiplier = {1,0.5,0.5,0.5,0.5,2,1,1,1,1,1,1,1,1,2,1,1,2};
507 types[14] = new Type("Dragon",dragonMultiplier);
508 double[]darkMultiplier = {1,1,1,1,1,1,2,1,1,1,0,2,1,0.5,1,0.5,1,2};
509 types[15] = new Type("Dark",darkMultiplier);
510 double[]steelMultiplier = {0.5,2,1,0.5,1,0.5,2,0,2,0.5,0.5,0.5,0.5,1,0.5,1,0.5,0.5};
511 types[16] = new Type("Steel",steelMultiplier);
512 double[]fairyMultiplier = {1,1,1,1,1,1,0.5,2,1,1,1,0.5,1,1,0,0.5,2,1};
513 types[17] = new Type("fairy",fairyMultiplier);
514 if(!(second==(null))){
515 boolean type1Found = true;
516 int type1Index = 0;
517 int i = 0;
518 while(type1Found){
519 if(first.equalsIgnoreCase(types[i].getTypeName())){
520 type1Index = i;
521 type1Found = false;
522 }
523 i++;
524 }
525 boolean type2Found = true;
526 int type2Index = 0;
527 i = 0;
528 while(type2Found){
529 if(second.equalsIgnoreCase(types[i].getTypeName())){
530 type2Index = i;
531 type2Found = false;
532 }
533 i++;
534 }
535 double[] type1 = types[type1Index].getTypeMultiplier();
536 double[] type2 = types[type2Index].getTypeMultiplier();
537 for(int o=0;o<types.length;o++){
538
539
540 if(type1[o]*type2[o]==0.25){
541
542 multiplier4.add(types[o].getTypeName());
543 }
544 }
545 return multiplier4;
546 }else{
547 boolean type1Found = true;
548 int type1Index = 0;
549 int i = 0;
550 while(type1Found){
551 if(first.equalsIgnoreCase(types[i].getTypeName())){
552 type1Index = i;
553 type1Found = false;
554 }
555 i++;
556 }
557 double[] type1 = types[type1Index].getTypeMultiplier();
558 for(int o=0;o<types.length;o++){
559 if(type1[o]==0.25){
560 multiplier4.add(types[o].getTypeName());
561 }
562 }
563 return multiplier4;
564 }
565
566 }
567 public static boolean typeCalcAdvantage(String first, String second, String third, String fourth){
568 ArrayList<String> multiplier4 = new ArrayList<String>();
569 Type[]types = new Type[19];
570 double[]nullMultiplier = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
571 types[0] = new Type("",nullMultiplier);
572 double[]normalMultiplier = {1,1,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,1};
573 types[1] = new Type("Normal",normalMultiplier);
574 double[]fireMultiplier = {1,1,0.5,2,0.5,1,0.5,1,1,2,1,1,0.5,2,1,1,1,0.5,0.5};
575 types[2] = new Type("Fire",fireMultiplier);
576 double[]waterMultiplier = {1,1,0.5,0.5,2,2,0.5,1,1,1,1,1,1,1,1,1,1,0.5,1};
577 types[3] = new Type("Water",waterMultiplier);
578 double[]grassMultiplier = {1,1,2,0.5,0.5,0.5,2,1,2,0.5,2,1,2,1,1,1,1,1,1};
579 types[4] = new Type("grass",grassMultiplier);
580 double[]electricMultiplier = {1,1,1,1,1,0.5,1,1,1,2,0.5,1,1,1,1,1,1,0.5,1};
581 types[5] = new Type("Electric",electricMultiplier);
582 double[]iceMultiplier = {1,1,2,1,1,1,0.5,2,1,1,1,1,1,2,1,1,1,2,1};
583 types[6] = new Type("Ice",iceMultiplier);
584 double[]fightingMultiplier = {1,1,1,1,1,1,1,1,1,1,2,2,0.5,0.5,1,1,0.5,1,2};
585 types[7] = new Type("Fighting",fightingMultiplier);
586 double[]poisonMultiplier = {1,1,1,1,0.5,1,1,0.5,0.5,2,1,2,0.5,1,1,1,1,1,0.5};
587 types[8] = new Type("Poison",poisonMultiplier);
588 double[]groundMultiplier = {1,1,1,2,2,0,2,1,0.5,1,1,1,1,0.5,1,1,1,1,1};
589 types[9] = new Type("Ground",groundMultiplier);
590 double[]flyingMultiplier = {1,1,1,1,0.5,2,2,0.5,1,0,1,1,0.5,2,1,1,1,1,1};
591 types[10] = new Type("Flying",flyingMultiplier);
592 double[]psychicMultiplier = {1,1,1,1,1,1,1,0.5,1,1,1,0.5,2,1,2,1,2,1,1};
593 types[11] = new Type("Psychic",psychicMultiplier);
594 double[]bugMultiplier = {1,1,2,1,0.5,1,1,0.5,1,0.5,2,1,1,2,1,1,1,1,1};
595 types[12] = new Type("Bug",bugMultiplier);
596 double[]rockMultiplier = {1,0.5,0.5,2,2,1,1,2,0.5,2,0.5,1,1,1,1,1,1,2,1};
597 types[13] = new Type("Rock",rockMultiplier);
598 double[]ghostMultiplier = {1,0,1,1,1,1,1,0,0.5,1,1,1,0.5,1,2,1,2,1,1};
599 types[14] = new Type("Ghost",ghostMultiplier);
600 double[]dragonMultiplier = {1,1,0.5,0.5,0.5,0.5,2,1,1,1,1,1,1,1,1,2,1,1,2};
601 types[15] = new Type("Dragon",dragonMultiplier);
602 double[]darkMultiplier = {1,1,1,1,1,1,1,2,1,1,1,0,2,1,0.5,1,0.5,1,2};
603 types[16] = new Type("Dark",darkMultiplier);
604 double[]steelMultiplier = {1,0.5,2,1,0.5,1,0.5,2,0,2,0.5,0.5,0.5,0.5,1,0.5,1,0.5,0.5};
605 types[17] = new Type("Steel",steelMultiplier);
606 double[]fairyMultiplier = {1,1,1,1,1,1,1,0.5,2,1,1,1,0.5,1,1,0,0.5,2,1};
607 types[18] = new Type("fairy",fairyMultiplier);
608 if(second!=null && fourth!=null){
609 boolean type1Found = true;
610 int type1Index = 0;
611 int i = 0;
612 while(type1Found){
613 if(first.equalsIgnoreCase(types[i].getTypeName())){
614 type1Index = i;
615 type1Found = false;
616 }
617 i++;
618 }
619 boolean type2Found = true;
620 int type2Index = 0;
621 i = 0;
622 while(type2Found){
623 if(second.equalsIgnoreCase(types[i].getTypeName())){
624 type2Index = i;
625 type2Found = false;
626 }
627 i++;
628 }
629 boolean type3Found = true;
630 int type3Index = 0;
631 i = 0;
632 while(type3Found){
633 if(third.equalsIgnoreCase(types[i].getTypeName())){
634 type3Index = i;
635 type3Found = false;
636 }
637 i++;
638 }
639 boolean type4Found = true;
640 int type4Index = 0;
641 i = 0;
642 while(type4Found){
643 if(fourth.equalsIgnoreCase(types[i].getTypeName())){
644 type4Index = i;
645 type4Found = false;
646 }
647 i++;
648 }
649 double[] type1 = types[type1Index].getTypeMultiplier();
650 double[] type2 = types[type2Index].getTypeMultiplier();
651
652 if((type1[type3Index]==2&&type2[type3Index]==2)||(type1[type4Index]==2&&type2[type4Index]==2)||(type1[type4Index]*type2[type4Index]==2)||(type1[type3Index]*type2[type3Index]==2)){
653
654 return true;
655 }else{
656 return false;
657 }
658 }else if(second!=null && fourth==null){
659 boolean type1Found = true;
660 int type1Index = 0;
661 int i = 0;
662 while(type1Found){
663 if(first.equalsIgnoreCase(types[i].getTypeName())){
664 type1Index = i;
665 type1Found = false;
666 }
667 i++;
668 }
669 boolean type2Found = true;
670 int type2Index = 0;
671 i = 0;
672 while(type2Found){
673 if(second.equalsIgnoreCase(types[i].getTypeName())){
674 type2Index = i;
675 type2Found = false;
676 }
677 i++;
678 }
679
680 boolean type3Found = true;
681 int type3Index = 0;
682 i = 0;
683 while(type3Found){
684 if(third.equalsIgnoreCase(types[i].getTypeName())){
685 type3Index = i;
686 type3Found = false;
687 }
688 i++;
689 }
690 double[] type1 = types[type1Index].getTypeMultiplier();
691 double[] type2 = types[type2Index].getTypeMultiplier();
692
693 if((type1[type3Index]==2&&type2[type3Index]==2)||(type1[type3Index]*type2[type3Index]==2)){
694 return true;
695 }else{
696 return false;
697 }
698 }else if(second==null && fourth!=null){
699 boolean type1Found = true;
700 int type1Index = 0;
701 int i = 0;
702 while(type1Found){
703 if(first.equalsIgnoreCase(types[i].getTypeName())){
704 type1Index = i;
705 type1Found = false;
706 }
707 i++;
708 }
709
710 boolean type3Found = true;
711 int type3Index = 0;
712 i = 0;
713 while(type3Found){
714 if(third.equalsIgnoreCase(types[i].getTypeName())){
715 type3Index = i;
716 type3Found = false;
717 }
718 i++;
719 }
720 boolean type4Found = true;
721 int type4Index = 0;
722 i = 0;
723 while(type4Found){
724 if(fourth.equalsIgnoreCase(types[i].getTypeName())){
725 type4Index = i;
726 type4Found = false;
727 }
728 i++;
729 }
730 double[] type1 = types[type1Index].getTypeMultiplier();
731
732
733 if((type1[type3Index]==2)||(type1[type4Index]==2)||(type1[type4Index]==2)||(type1[type3Index]==2)){
734
735 return true;
736 }else{
737 return false;
738 }
739 }else{
740 boolean type1Found = true;
741 int type1Index = 0;
742 int i = 0;
743 while(type1Found){
744 if(first.equalsIgnoreCase(types[i].getTypeName())){
745 type1Index = i;
746 type1Found = false;
747 }
748 i++;
749 }
750
751
752 boolean type3Found = true;
753 int type3Index = 0;
754 i = 0;
755 while(type3Found){
756 if(third.equalsIgnoreCase(types[i].getTypeName())){
757 type3Index = i;
758 type3Found = false;
759 }
760 i++;
761 }
762
763 double[] type1 = types[type1Index].getTypeMultiplier();
764
765
766 if(type1[type3Index]==2){
767
768 return true;
769 }else{
770 return false;
771 }
772 }
773
774 }
775 public static boolean typeCalcAttack(String first, String second, String third){
776 ArrayList<String> multiplier4 = new ArrayList<String>();
777 Type[]types = new Type[19];
778 double[]nullMultiplier = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
779 types[0] = new Type("",nullMultiplier);
780 double[]normalMultiplier = {1,1,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,1};
781 types[1] = new Type("Normal",normalMultiplier);
782 double[]fireMultiplier = {1,1,0.5,2,0.5,1,0.5,1,1,2,1,1,0.5,2,1,1,1,0.5,0.5};
783 types[2] = new Type("Fire",fireMultiplier);
784 double[]waterMultiplier = {1,1,0.5,0.5,2,2,0.5,1,1,1,1,1,1,1,1,1,1,0.5,1};
785 types[3] = new Type("Water",waterMultiplier);
786 double[]grassMultiplier = {1,1,2,0.5,0.5,0.5,2,1,2,0.5,2,1,2,1,1,1,1,1,1};
787 types[4] = new Type("grass",grassMultiplier);
788 double[]electricMultiplier = {1,1,1,1,1,0.5,1,1,1,2,0.5,1,1,1,1,1,1,0.5,1};
789 types[5] = new Type("Electric",electricMultiplier);
790 double[]iceMultiplier = {1,1,2,1,1,1,0.5,2,1,1,1,1,1,2,1,1,1,2,1};
791 types[6] = new Type("Ice",iceMultiplier);
792 double[]fightingMultiplier = {1,1,1,1,1,1,1,1,1,1,2,2,0.5,0.5,1,1,0.5,1,2};
793 types[7] = new Type("Fighting",fightingMultiplier);
794 double[]poisonMultiplier = {1,1,1,1,0.5,1,1,0.5,0.5,2,1,2,0.5,1,1,1,1,1,0.5};
795 types[8] = new Type("Poison",poisonMultiplier);
796 double[]groundMultiplier = {1,1,1,2,2,0,2,1,0.5,1,1,1,1,0.5,1,1,1,1,1};
797 types[9] = new Type("Ground",groundMultiplier);
798 double[]flyingMultiplier = {1,1,1,1,0.5,2,2,0.5,1,0,1,1,0.5,2,1,1,1,1,1};
799 types[10] = new Type("Flying",flyingMultiplier);
800 double[]psychicMultiplier = {1,1,1,1,1,1,1,0.5,1,1,1,0.5,2,1,2,1,2,1,1};
801 types[11] = new Type("Psychic",psychicMultiplier);
802 double[]bugMultiplier = {1,1,2,1,0.5,1,1,0.5,1,0.5,2,1,1,2,1,1,1,1,1};
803 types[12] = new Type("Bug",bugMultiplier);
804 double[]rockMultiplier = {1,0.5,0.5,2,2,1,1,2,0.5,2,0.5,1,1,1,1,1,1,2,1};
805 types[13] = new Type("Rock",rockMultiplier);
806 double[]ghostMultiplier = {1,0,1,1,1,1,1,0,0.5,1,1,1,0.5,1,2,1,2,1,1};
807 types[14] = new Type("Ghost",ghostMultiplier);
808 double[]dragonMultiplier = {1,1,0.5,0.5,0.5,0.5,2,1,1,1,1,1,1,1,1,2,1,1,2};
809 types[15] = new Type("Dragon",dragonMultiplier);
810 double[]darkMultiplier = {1,1,1,1,1,1,1,2,1,1,1,0,2,1,0.5,1,0.5,1,2};
811 types[16] = new Type("Dark",darkMultiplier);
812 double[]steelMultiplier = {1,0.5,2,1,0.5,1,0.5,2,0,2,0.5,0.5,0.5,0.5,1,0.5,1,0.5,0.5};
813 types[17] = new Type("Steel",steelMultiplier);
814 double[]fairyMultiplier = {1,1,1,1,1,1,1,0.5,2,1,1,1,0.5,1,1,0,0.5,2,1};
815 types[18] = new Type("fairy",fairyMultiplier);
816 if(second!=null){
817 boolean type1Found = true;
818 int type1Index = 0;
819 int i = 0;
820 while(type1Found){
821 if(first.equalsIgnoreCase(types[i].getTypeName())){
822 type1Index = i;
823 type1Found = false;
824 }
825 i++;
826 }
827 boolean type2Found = true;
828 int type2Index = 0;
829 i = 0;
830 while(type2Found){
831 if(second.equalsIgnoreCase(types[i].getTypeName())){
832 type2Index = i;
833 type2Found = false;
834 }
835 i++;
836 }
837 boolean type3Found = true;
838 int type3Index = 0;
839 i = 0;
840 while(type3Found){
841 if(third.equalsIgnoreCase(types[i].getTypeName())){
842 type3Index = i;
843 type3Found = false;
844 }
845 i++;
846 }
847
848 double[] type1 = types[type1Index].getTypeMultiplier();
849 double[] type2 = types[type2Index].getTypeMultiplier();
850
851 if((type1[type3Index]==2&&type2[type3Index]==2)||(type1[type3Index]*type2[type3Index]==2)){
852
853 return true;
854 }else{
855 return false;
856 }
857 }else{
858 boolean type1Found = true;
859 int type1Index = 0;
860 int i = 0;
861 while(type1Found){
862 if(first.equalsIgnoreCase(types[i].getTypeName())){
863 type1Index = i;
864 type1Found = false;
865 }
866 i++;
867 }
868
869 boolean type3Found = true;
870 int type3Index = 0;
871 i = 0;
872 while(type3Found){
873 if(third.equalsIgnoreCase(types[i].getTypeName())){
874 type3Index = i;
875 type3Found = false;
876 }
877 i++;
878 }
879
880 double[] type1 = types[type1Index].getTypeMultiplier();
881
882
883 if(type1[type3Index]==2){
884 return true;
885 }else{
886 return false;
887 }
888 }
889
890 }
891 }
892
893
894